package com.qingzhou.web.service;

import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;
import com.qingzhou.common.web.domain.FileVo;
import com.qingzhou.web.repository.entity.PatientEntity;
import com.qingzhou.web.service.impl.params.request.*;
import com.qingzhou.web.service.impl.params.vo.PatientVo;

import java.io.File;
import java.util.List;

/**
 *
 * @author 李海
 */
public interface PatientService extends IService<PatientEntity> {

    int add(PatientAddForm form);

    int delete(PatientDeleteForm form);
    Page<PatientEntity> page(Page<PatientEntity> page, PatientEntity patientEntity);
    PatientVo detail(PatientDetailForm form);
    int edit(PatientEditForm form);
    int supplement(PatientEditForm form);
    int forceEdit(PatientForceEditForm form);
    int done(PatientDoneForm form);
    int stop(PatientStopForm form);
    void export(PatientExportForm form);
    String buildPatientCode(String prefix);

    /**
     * 上传知情同意书
     */
    void uploadFile(PatientUploadFileForm form);

    /**
     * 查看知情同意书
     */
    List<FileVo> listFile(PatientListFileForm form);

    /**
     * 下载知情同意书（单文件）
     */
    File downloadSingle(PatientDownloadSingleFileForm form);
    /**
     * 下载知情同意书（zip包）
     */
    File download(PatientDownloadFileForm form);


}
